package pruebas;

import java.util.Vector;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;

import logica.acciones.BusquedaRecorrido;
import logica.acciones.Coordenada;
import logica.objetos.Carguero;
import logica.objetos.Imagen;
import logica.objetos.Mapa;
import persistencia.PoolTransacciones;
import Daos.Imagenes;
import Daos.Mapas;
import Daos.Objetos;
import excepciones.PersistenciaException;

public class PruebaMapa {
	public static void main(String[] args) {

		try {
			PoolTransacciones pool = PoolTransacciones.getInstance();
			Connection t = pool.obtenerTransaccion();
			Mapas mps = new Mapas();			
			Mapa mp1 = mps.buscarMapa(t, 1);
			//System.out.println("[");
			
			for(int i = 0; i < mp1.getMatriz()[0].length; i++){
				System.out.print("[");
				for(int j = 0; j < mp1.getMatriz()[i].length; j++){
					System.out.print(mp1.getMatriz()[i][j]);
					if(j < mp1.getMatriz()[i].length - 1){
						System.out.print(",");
					}
				}
				System.out.println("]");
			}
			//System.out.println("]");
			System.out.println("");
			System.out.println("");
			
			//Busca el recorrido mas corto entre 2 puntos evadiendo tierra
			BusquedaRecorrido astar = new BusquedaRecorrido(mp1.getMatriz(), 164);
			Coordenada inicio = new Coordenada(13,1);
			Coordenada destino = new Coordenada(14,3);
			//Vector de coordenadas que forman ese camino.
			Vector<Coordenada> path = astar.calculatePath(inicio, destino);
			
			for(int i = 0; i < path.size(); i++){
				System.out.print("{ x:" + path.get(i).getX() + ", y:" + path.get(i).getY() + " }");			
			}	
			
			
			Objetos objs = new Objetos();
			Carguero c = objs.buscarCargueroPorIdPartida(t, 294);
			c.setDanio(1);
			objs.actualizarCarguero(t, c);
			
			pool.finalizarTransaccion(t, true);

		} catch (PersistenciaException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}
}
